#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

// int (*p) (int a,int b){

// }

// struct students{
//         char name[10];
//         int age;
//         int number;
//         int grades;
// }; 

// void chakan(struct students* stu, int len){
//     printf("%s  %d  %d  %d\n",stu[len-1].name,stu[len-1].age,stu[len-1].grades);
// }
int main(int argc,const char* argv[])
{   
    // int x=0,y=0;
    // int *px=&x;
    // int *py=&y;
    // y=*px+5;
    // printf("%d\n",y);
    // y=++(*px);
    // printf("%d\n",y);

    // int a =100,b= 999;
    // int *pa=&a;
    // int *pb=&b;
    // printf("a=%d,b=%d\n",a,b);
    //     int temp=*pa;
    //     *pa=*pb;
    //     *pb=temp;

    // printf("a=%d,b=%d\n",a,b);



    // char c ='a';
    // short s =10;
    // int i =20;
    // long l =30;
    // double d=99.9;

    // char *pc=&c;
    // short *ps=&s;
    // int *pi=&i;
    // long *pl=&l;
    // double* pd=&d;
    // double* ppd=&d;

    // printf("&c=%p,&s=%p,&i=%p,&l=%p,&d=%p\n",&c,&s,&i,&l,&d);
    // printf("pc=%p,ps=%p,pi=%p,pl=%p,pd=%p\n",pc,ps,pi,pl,pd);
    // pc++;
    // ps++;
    // pi++;
    // pl++;
    // pd++;
    // printf("pc=%p,ps=%p,pi=%p,pl=%p,pd=%p\n",pc,ps,pi,pl,pd);

    // printf("pdd = %p pd = %p\n",ppd,pd);
    // if(ppd == pd){
    //     printf("ok\n");
    // }

    // double ** pdd =&pd;
    // sizeof(pdd);
    // printf("%ld",sizeof(pdd));

    // i;
    // y=*px+5;
    // printf(/ *p=4;
    // //
    // free(p);
    // p=NULL;
    // if(p != NULL){
    //     *p =10;
    // }

    // double d=1.2;
    // char c='a';
    // void* pd;
    // void* pc;
    // printf("%lf,%c",*(double *)pd,*(char *)pc);

    // int n=8;
    // printf("%d",*(char*)&n);
    // if(*(char*)&n == 8){
    //     printf("低");
    // }
    // else{
    //     printf("高");
    // }

    // double a=5;
    // double *p=&a;
    // double *p2=NULL;
    // printf("%p\n",p);
    // p2=p+2;
    // printf("%p\n",p);
  
    // char s[10]="hello";
    // char* p1=&s[0];
    // char* p2=&s[3];
    // if(p1 < p2){
    //     printf("y\n");
    // }
    // else{
    //     printf("n\n");
    // }


    // int a[2][3]={{1,2,3}};
    // printf("%p\n",*(a+1)+1);
    
    // int b[][2]={1,2,3,4,5,6};
    // // int * pa=b;
    // printf("%p \n",b[2]);
    // int a=1;
    // int c=a++;
    // int d=++a;
    // printf("%d %d",c,d);


    // char dest[100]={0};
    // int a=10;
    // char str[]="hell word";
    // sprintf(dest,"%d %s",a,str);
    // printf("%s",dest);

    // char s[] ="a = 10,b = 20";
    // int aa=70;
    // int bb=70;
    // int n =sscanf(s,"a = %d,b = %d\n",&aa,&bb);
    // printf("%%d\n",n);//打印2
    // printf("%d %d\n",aa,bb);//打印10 20

    // char a[]="abcdef";
    // char* pa=strstr(a,"bcd");
    // printf("%s\n",pa);//打印bcdef
    // printf("%c\n",*pa);//打印b
    
    // char src[]="abc*def*hij*klm*nxy";
    // printf("%s\n",src);//打印abc*def*hij*klm*nxy
    // char* a= strtok(src,"*");
    // while(a != NULL){
    //     printf("%s\n",a);//依次打印abc/def/hij/klm/nxy
    //     a=strtok(NULL,"*");
    // }
    // printf("%s\n",src);//打印abc


    // char str[]="-10";
    // int i1=atoi(str);
    // printf("%d",i1);//打印-10

    // char str[]="ab-10";
    // int i1=atoi(str);
    // printf("%d",i1);//失败 i1=0

    // char str[]="10.1";
    // float i1=atof(str);
    // printf("%f\n",i1);//打印10.100000

    // char str1[]="ab-10";
    // float i2=atof(str1);
    // printf("%f\n",i2);//失败 打印 i2=0.000000

    // char str[]="10.1";
    // float i1=atof(str);
    // printf("%f\n",i1);//打印10.100000

    // char str1[]="ab-10";
    // float i2=atof(str1);
    // printf("%f\n",i2);//失败 打印 i2=0.000000


    // int a=1,b=2,c=3;
    // int* p[3]={&a,&b,&c};//压入一个指针数组，三个元素里面存的值是abc三个的地址
    // printf("%p %d\n",p[0],*p[0]);//p[0], 指针数组第一个元素里面存的地址（a）,*p[0],a的地址存的值，为1
    // int **p1=p;//压入一个指针，指向数组指针的第一个元素的地址
    // printf("%p %p\n",p1,*p1);//p1,值为指针数组p第一个元素地址。*p1，取指针数组p第一个元素地址里面存的值，值为a的地址

    // char *ar[3]={0};
    // ar[0] = "java";
    // ar[1] = "c++";
    // ar[2] = "python";
    // char** p =ar;
    // for(int i =0;i<sizeof(ar)/sizeof(char*);i++){
    //     printf("%s\n",*(p+i));//依次打印"java""c++""python"

    // }
    // printf("%c %c\n",*(*(p+1)+1),*(*(p)+1));//打印'+' 'a'

    // printf("argc =%d  argv[0]=%s  argv[2]=%s",argc,argv[0],argv[1]);

    // int a[3]={1,2,3};
    // int *p=a;
    // printf("%d\n",*p++);
    // printf("%d\n",*a++);

    // enum 

    // int a[5]={1,2,3,4,5};
    // int* ptr =(int *)(&a+1);
    // printf("%d %d",*(a+1),*(ptr -1));

    // int a[]={1,2,3,4,5};
    // int b[5];
    // int c[]={1,2,3,3,2};
    // memset(b,0,sizeof(b));
    // memcpy(b,a,sizeof(a));
    // int n=memcmp(a,c,sizeof(a));
    // for(int i=0;i<sizeof(b)/sizeof(int);i++){
    //     printf("%d",b[i]);
    // }
    // printf("\n");
    // printf("%d\n",n);
    
    // int n=0;
	// scanf("%d",&n);
	// int *p=(int*) malloc(sizeof(int)*n);
    // if(p == NULL){
    //     printf("errro\n");
    //     return -1;
    // }
    // memset(p,0,sizeof(int)*n);
    // for(int i=0;i<n;i++){
    //     p[i]=i;
    // }
    // for(int i=0;i<n;i++){
    //     printf("%d ",p[i]);
    // }
    // printf("\n");
    // free(p);
    // p=NULL;
    // free(p);

    char*p=NULL;
    p=(char*)malloc(10);
    p="hello";
    printf("%s\n",p);
    free(p);


    return 0;
}

